package org.dromara.oce.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.oce.domain.OceTemplateTask;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;



/**
 * 巨量项目广告任务记录视图对象 oce_template_task
 *
 * @author dsbb
 * @date 2025-07-04
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OceTemplateTask.class)
public class OceTemplateTaskVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 任务id
     */
    @ExcelProperty(value = "任务id")
    private Long taskId;

    /**
     * 管家账号
     */
    @ExcelProperty(value = "管家账号")
    private Long accountId;

    /**
     * 广告主账号
     */
    @ExcelProperty(value = "广告主账号")
    private Long advertiserId;


    /**
     * 投手名
     */
    private String createName;

    /**
     * 任务名称
     */
    @ExcelProperty(value = "任务名称")
    private String name;

    /**
     * 短剧名
     */
    private String dramaTitle;
    /**
     * 广告类型
     */
    private String promotionType;

    /**
     * 创建项目完整json
     */
    @ExcelProperty(value = "创建项目完整json")
    private String projectJson;

    /**
     * 提交项目数量
     */
    @ExcelProperty(value = "提交项目数量")
    private Integer projectNum;

    /**
     * 提交广告数量
     */
    @ExcelProperty(value = "提交广告数量")
    private Integer promotionNum;

    /**
     * 提交项目、广告json
     */
    @ExcelProperty(value = "提交项目、广告json")
    private String projectPromotionJson;

    /**
     * 执行状态：0-未执行；1-执行完成；
     */
    @ExcelProperty(value = "执行状态：0-未执行；1-执行完成；")
    private Integer executeStatus;

    /**
     * 提交类型：0-同步提交；1-异步提交；2-定时提交；
     */
    @ExcelProperty(value = "提交类型：0-同步提交；1-异步提交；2-定时提交；")
    private Integer submitType;

    /**
     * 定时发布时间
     */
    @ExcelProperty(value = "定时发布时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime pushTime;

    /**
     * 成功数量
     */
    @ExcelProperty(value = "成功数量")
    private Integer successNum;

    /**
     * 失败数量
     */
    @ExcelProperty(value = "失败数量")
    private Integer failNum;

    /**
     * 备注描述
     */
    @ExcelProperty(value = "备注描述")
    private String remark;


    /**
     * 广告主名称
     */
    private String advertiserName;


}
